<?php

namespace Common\Model;

/**
 * Description of AdminLoginModel
 * @index userlogin(`mobile`)
 */
class AdminLoginModel extends BaseModel {

    protected $trueTableName = 'tb_admin_login';

    protected function _before_insert(&$data, $options) {
        // parent::_before_insert($data, $options);
    }

    protected function _before_update(&$data, $options) {
        // parent::_before_update($data, $options);
    }

    /**
     * 获取信息
     * @modify trainyao 2016-01-06 创建
     * @param  mixin   $adminId        管理员id(s)
     * @return array              信息数组
     */
    public function getInfo($adminId) {
        $option = array();

        if (is_array($adminId)) {
            $adminId = implode(',', $adminId);
        }
        if (strpos($adminId, ',') !== false) {
            $option['id'] = array('in', $adminId);
            $data = $this->where($option)->select();
        } else {
            $option['id'] = $adminId;
            $data = $this->where($option)->find();
        }

        return empty($data) ? array() : $data;
    }

    /**
     * 获取信息
     * @modify wenhui 2017-12-18 创建
     * @param  mixin   $adminId        管理员id(s)
     * @return array              信息数组
     */
    public function getInfoByAdminId($adminId) {
        $option = array();

        if (is_array($adminId)) {
            $option['id'] = array('in', $adminId);
        } else {
            $option['id'] = $adminId;
        }

        $data = $this->where($option)->select();
        return empty($data) ? array() : $data;
    }

    /**
     * 手机号返回用户数据
     * @modify songanwei 2015-12-31
     * @param string $mobile 手机号
     * @param string $mobile 手机区号
     * @return mixed
     */
    public function getInfoByMobile($mobile, $areaCode = '86') {
        return $this->where(array('mobile' => $mobile, 'areacode' => $areaCode))->find();
    }

    /**
     * 添加用户数据
     * @modify songanwei 2015-12-31
     * @modify songanwei 2017-05-12 添加区号
     * @param string $mobile 手机号
     * @param string $password 密码
     * @param string $name  用户名称
     * @param string $areaCode  区号
     * @return type
     */
    public function addInfo($mobile, $password, $name, $areaCode = '86') {
        $options = array(
            'name' => $name,
            'mobile' => $mobile,
            'password' => $password,
            'areacode' => $areaCode,
        );

        $userId = $addResult = $this->add($options);
        // 添加引导页数据
        $this->setGuidanceData($userId);

        return $addResult;
    }

    /**
     * 重置用户密码
     * @modify songanwei 2015-12-31
     * @param string $userId  用户ID
     * @param string $password 重置密码
     * @return type
     */
    public function setPassword($userId, $password) {
        $result = $this->where(array('id' => $userId))->save(array('password' => $password));
        return $result === false ? false : true;
    }

    /**
     * 更新用户名称
     * @modify songanwei 2016-01-04
     * @param integer $userId 用户ID
     * @param string $name 用户名称
     * @return type
     */
    public function setName($userId, $name) {
        $result = $this->where(array('id' => $userId))->save(array('name' => $name));
        return $result === false ? false : true;
    }
    
    /**
     * 更换手机号
     * @modify songanwei 2016-01-08
     * @modify wenhui 2017-05-25 新增区号参数
     * @param integer $userId  用户ID
     * @param string $mobile  
     * @param string $areaCode  
     * @return type
     */
    public function setMobile($userId, $mobile, $areaCode = null){
        $data = array(
            'mobile'=>$mobile,
        );

        if (!is_null($areaCode)) {
            $data['areacode'] = $areaCode;
        }

        $result = $this->where(array('id'=>$userId))->save($data);
        return $result === false ? false : true;
    }
	/**
     * 设置试用结束时间
     * @modify zhangzhen 2016-12-29
     * @param integer $userId  用户ID
     * @param string $endtime  
     * @return type
     */
    public function setEndtime($userId,$endtime){
        $result = $this->where(array('id'=>$userId))->save(array('endtime'=>$endtime));
        return $result === false ? false : true;
    }
	/**
     * 设置申请状态
     * @modify zhangzhen 2016-12-29
     * @param integer $userId  用户ID
     * @param string $endtime  
     * @return type
     */
    public function setStatus($userId,$status){
        $result = $this->where(array('id'=>$userId))->save(array('status'=>$status));
        return $result === false ? false : true;
    }
	
    /**
     * 修改账号的试用期
     * @modify zhangzhen 2016-12-28
     * @param string $adminId 管理员Id
     * @return type
     */
    public function saveInfo($adminId, $data) {
        $options = array(
            'id' => $adminId,
        );
        $result = $this->where($options)->save($data);
        return $result === false ? false : true;
        //return $this->where($options)->save($data);
    }

    /**
     * 记录redis
     * @modify wenhui 2017-11-20    创建
     */
    public function setGuidanceData($userId) {
        $this->guiRedisUtil = new \Org\Util\RedisHelper(null, null, null);
        $this->guiRedisUtil->db(7);
        $firstFeild = 'first_' . $userId;
        $firstResult = $this->guiRedisUtil->redis->hset('guidance', $firstFeild, 1);
        return;
    }

    /**
     * 返回名称
     * @param integer $id ID
     * @return type
     */
    public function getName($id) {
        return $this->where(array('id' => $id))->getField('name');
    }
}
